<!DOCTYPE HTML>
<html>
<head>
<title>NumGet() | AutoHotkey</title>
<meta name="description" content="The NumGet function returns the binary number stored at the specified address+offset." />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link href="../static/theme.css" rel="stylesheet" type="text/css" />
<script src="../static/content.js" type="text/javascript"></script>
<script type="text/javascript">$(function(){0<=window.navigator.userAgent.toLowerCase().indexOf("ucbrowser")&&CaoNiMaDeUc()})</script>
</head>
<body>

<h1>NumGet()</h1>
<p>返回指定地址+偏移位置存储的二进制数值.</p>
<pre class="Syntax">Number := <span class="func">NumGet</span>(VarOrAddress <span class="optional">, Offset := 0</span><span class="optional">, Type := "UPtr"</span>)</pre>

<h2 id="Parameters">参数</h2>
<dl>

  <dt>VarOrAddress(变量或地址)</dt>
  <dd>
		<p>内存地址或变量. 如果 <em>VarOrAddress</em> 是一个变量(例如 <code>MyVar</code>), 则使用变量字符串的缓冲地址. 这等同于传递 <code>&amp;MyVar</code>, 然而省略 "&amp;" 可以执行得更好并确保目标地址+偏移是<a href="VarSetCapacity.htm">有效的</a>.</p>
		<p>如果变量 <em>包含</em> 目标地址时, <strong>不要传递一个变量引用</strong>; 在这种情况下, 传递一个类似 <code>MyVar+0</code> 的表达式.</p>
	</dd>

  <dt>Offset(偏移)</dt>
  <dd><p>偏移(单位为字节), 添加到 <em>VarOrAddress</em> 以确定目标地址.</p></dd>

  <dt>Type(类型)</dt>
  <dd>
    <p>如果为空或省略, 则默认为 UPtr. 否则, 指定 UInt, Int, Int64, Short, UShort, Char, UChar, Double, Float, Ptr 或 UPtr.</p>
    <p>不支持 <em>无符号</em> 的 64 位整数, 因为 AutoHotkey 的内置整数类型是 Int64. 因此, 要使用大于或等于 0x8000000000000000 的数字, 请省略 U 前缀并将任何负值解释为较大的整数. 例如, 作为 Int64 的 -1 值实际上是 0xFFFFFFFFFFFFFFFF(如果期望它作为 UInt64). 在 64 位构建中, UPtr 等同于 Int64.</p>
    <p>与 DllCall() 不同的是, 作为原义字符串使用时必须括在引号中.</p>
    <p>更多细节请参阅 <a href="DllCall.htm#types">DllCall 类型</a>.</p>
  </dd>

</dl>

<h2 id="Return_Value">返回值</h2>
<p>如果目标地址无效, 则返回空字符串. 然而, 某些无效地址这里无法检测出来并可能导致不可预知的行为.</p>
<p>其他情况下返回指定地址+偏移的数字.</p>

<h2>一般说明</h2>
<p>如果只使用了两个参数, 则第二个参数可以为 <em>Offset</em> 或 <em>Type</em>. 例如, <code>NumGet(var, "int")</code> 是合法的.</p>

<h2 id="Related">相关</h2>
<p><a href="NumPut.htm">NumPut()</a>, <a href="DllCall.htm">DllCall()</a>, <a href="VarSetCapacity.htm">VarSetCapacity()</a></p>

</body>
</html>